package com.example.demo.mapper;

import com.example.demo.entity.RoutingRule;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface RoutingRuleMapper {

    /**
     * 查询所有路由规则
     */
    List<RoutingRule> selectAll();

    /**
     * 根据ID查询路由规则
     */
    RoutingRule selectById(Integer id);

    /**
     * 插入路由规则
     */
    int insert(RoutingRule routingRule);

    /**
     * 更新路由规则
     */
    int updateById(RoutingRule routingRule);

    /**
     * 删除路由规则
     */
    int deleteById(Integer id);

    /**
     * 统计路由规则数量
     */
    long count();

    /**
     * 根据角色配置ID和部门ID查询路由规则
     */
    List<RoutingRule> selectByRoleAndDepartment(Integer roleConfigId, Integer deptId);
    
    /**
     * 根据角色名称模糊搜索路由规则
     */
    List<RoutingRule> selectByRoleNameLike(@Param("roleName") String roleName);
    
    /**
     * 根据部门名称模糊搜索路由规则
     */
    List<RoutingRule> selectByDeptNameLike(@Param("deptName") String deptName);
}